import * as vscode from 'vscode';

export class QuickPick {

  /**
   * 显示一个下拉选择框
   * @date 1/24/2024 - 6:12:30 PM
   *
   * @static
   * @async
   * @template I 下拉选项的数据类型
   * @param {I[]} items 下拉选项的列表
   * @param {(item: I) => string} label 下拉选项的显示文本 
   * @returns {Promise<number>} 被选中的序号，当未选中任何文本时，返回 -1
   */
  static async show<I>(items: I[], label: (item: I) => string): Promise<number> {
    const str = await vscode.window.showQuickPick(items.map((item, idx) => `${idx}.${label(item)}`));
    if (!str) { return -1; }
    return Number(str.substring(0, str.indexOf('.')));
  }
}